You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

@fluentui/keyboard-key

Package Overview
Dependencies
Maintainers
13
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fluentui/keyboard-key

A simple utility for determining the KeyboardEvent.key property from a keyboard event.


Version published
Weekly downloads
153K
increased by1.77%
Maintainers
13
Install size
174 kB
Created
Weekly downloads
 

Package description

What is @fluentui/keyboard-key?

@fluentui/keyboard-key is a utility package that provides constants and helper functions for handling keyboard events in a consistent manner. It is particularly useful for managing keyboard interactions in web applications, ensuring that key codes are handled correctly across different browsers and platforms.

What are @fluentui/keyboard-key's main functionalities?

Key Code Constants

The package provides constants for common key codes, making it easier to handle keyboard events without having to remember the numeric key codes.

const { EnterKey, EscapeKey } = require('@fluentui/keyboard-key');
console.log(EnterKey); // Outputs: 13
console.log(EscapeKey); // Outputs: 27

Key Code Mapping

The package includes helper functions like `getCode` and `getKey` to map between key names and key codes, simplifying the process of working with keyboard events.

const { getCode, getKey } = require('@fluentui/keyboard-key');
console.log(getCode('Enter')); // Outputs: 13
console.log(getKey(13)); // Outputs: 'Enter'

Cross-Browser Compatibility

The package ensures that keyboard events are handled consistently across different browsers by providing utility functions like `isKey` to check if a specific key was pressed.

const { isKey } = require('@fluentui/keyboard-key');
const event = new KeyboardEvent('keydown', { keyCode: 13 });
console.log(isKey(event, 'Enter')); // Outputs: true

Other packages similar to @fluentui/keyboard-key

Readme

Source

@fluentui/keyboard-key

A simple utility for determining the KeyboardEvent.key property from a keyboard event.

  • Install
  • Usage
  • Why?
  • Locale Caveat

Install

yarn add keyboard-key

# or

npm install keyboard-key

Usage

getKey()

Get the key property value from an event.

document.addEventListener('keydown', event => {
  const key = keyboardKey.getKey(event);

  switch (key) {
    case 'Escape':
      // handle escape key
      break;
    default:
      break;
  }
});

See MDN or the source for a full list of key values.

getCode()

You can also get the normalized keyCode from an event. @fluentui/keyboard-key includes a hash of key names to keyCodes for easy comparisons:

document.addEventListener('keydown', event => {
  const code = getCode(event);

  switch (code) {
    case keyboardKey.Escape: // 27
      // handle escape key
      break;
    default:
      break;
  }
});

Why?

Most previous key identifying KeyboardEvent properties have been pressed have been deprecated in favor of Keyboard.key.

:-1: KeyboardEvent.char :-1: KeyboardEvent.charCode :-1: KeyboardEvent.keyCode :-1: KeyboardEvent.keyIdentifier :-1: KeyboardEvent.keyLocation :-1: KeyboardEvent.which

:+1: KeyboardEvent.key

Unfortunately, KeyboardEvent.key does not yet have full browser support. Leaving the browsers without a reliable property for identifying keyboard event keys.

Locale Caveat

This utility interprets use of the shift key when inferring event key values. Example, an event describing shift+/ would result in a key value of ?. This logic assumes an en-US locale keyboard layout. This will not work if you are using a different locale such as a German layout where / is shift+7.

FAQs

Package last updated on 25 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc